Geonodes Part 1
ВВЕДЕНИЕ
Этот комплексный курс охватывает все аспекты Geometry Nodes в Blender (версия 4.0+, включая 5.1 alpha). Он включает:
- Детальный разбор каждой группы нод и их применения с ссылками на официальную документацию
- 200+ лучших туториалов с прямыми ссылками и подробными аннотациями
- 100+ активных форумных обсуждений на BlenderArtists, Reddit, DevTalk
- Распространённые проблемы и решения для каждой темы
- Лайфхаки от профессионалов для оптимизации работы
- Интерактивные проекты для применения знаний на практике
- Глубокие объяснения математики, полей, атрибутов и векторов
- Практические применения с готовыми идеями проектов
МЕТОДОЛОГИЯ ОБУЧЕНИЯ
Рекомендации от профессионалов (из активных обсуждений)
1. Sozap (BlenderArtists):
"Начните с boring basics - randomize points, raycast, что такое fields. Большинство туториалов слишком продвинутые."
2. HyperSomniac (BlenderArtists):
"Focus on the basics for a while. Stay away from simulation and convoluted setups. Simple things like scattering."
3. Профессиональный совет:
"Learn the alphabet - boring but essential. После 1-4 месяцев сложные вещи станут простыми."
Структура прогрессии
Курс разбит на 6 уровней сложности:
- Уровень 0: Фундаментальная теория (что это такое, как это работает)
- Уровень 1: Boring basics (точки, инстансы, базовые трансформации)
- Уровень 2: Scatter systems, простые эффекты, работа с геометрией
- Уровень 3: Curves, атрибуты, fields, работа с доменами
- Уровень 4: Math, текстуры, сложная логика, селекция и фильтрация
- Уровень 5+: Simulation, VFX, специализированные техники, оптимизация
Рекомендуемое время обучения: 3-6 месяцев активного обучения на каждый уровень.
УРОВЕНЬ 0: ФУНДАМЕНТАЛЬНАЯ ТЕОРИЯ
МОДУЛЬ 0.1: ЧТО ТАКОЕ GEOMETRY NODES
Основные концепции
Процедурное моделирование
Создание геометрии через алгоритмы и ноды, а не ручное моделирование. Это позволяет автоматизировать повторяющиеся задачи и создавать параметрические модели, которые можно легко изменять.
Node-based система
Связывание нод для преобразования данных. Geometry Nodes работают с потоком данных через ноды:
- Каждая нода выполняет одну операцию
- Передаёт результат дальше по цепи
- Данные могут быть разных типов (Float, Vector, Geometry, Boolean)
- Типизация сокетов предотвращает ошибки (цвета указывают тип)
Geometry Nodes как модификатор
- Работает в стеке модификаторов
- Позволяет неразрушающее редактирование
- Можно комбинировать с другими модификаторами
- Параметры доступны через панель модификатора
- Неразрушающее означает, что оригинальная геометрия не изменяется
Типы данных в Geometry Nodes
| Тип | Описание | Использование |
|---|---|---|
| Geometry | Основной тип, содержит всю информацию | Основной выход/вход узлов |
| Mesh | Полигональная сетка (vertices, edges, faces) | Стандартное моделирование |
| Curve | Кривая Безье, NURBS, полилиния | Пути, контуры, волосы |
| Point Cloud | Облако точек без связей | Частицы, распределение |
| Volume | Объёмные данные (SDF, грид) | VFX, дым, жидкости |
| Instances | Инстансы объектов (ссылки) | Оптимизация, рассеивание |
Официальная документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/index.html
Фундаментальные концепции: Fields и Attributes
Что такое Attribute (Атрибут)?
Атрибут — это свойство, хранящееся на каждом элементе геометрии:
- Position (вектор) — координаты каждой вершины
- Normal (вектор) — направление поверхности
- UV Map (вектор) — координаты для текстур
- Vertex Color (цвет) — цвет каждой вершины
- Weight (float) — вес вершины для деформации
- id (целое число) — стабильный идентификатор
Домены атрибутов (где хранится атрибут):
- Point Domain — на вершинах (vertices)
- Edge Domain — на рёбрах (edges)
- Face Domain — на лицах (faces)
- Corner Domain — на углах лица (corners) — самый специфичный
- Spline Domain — на сплайнах (для кривых)
Официальная документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/attributes_reference.html
Что такое Field (Поле)?
Поле — это инструкция/функция, которая не хранит данные, а вычисляет их при использовании:
Field = Функция от входных данных → Результат для каждого элемента
Ключевая разница:
- Атрибут = "вот эти значения на каждой вершине прямо сейчас"
- Поле = "инструкция как вычислить значение для каждой вершины, когда понадобится"
Практический пример:
Set Position с Position node:
- Это просто информация о текущих координатах
Set Position с Vector Math (Position + Offset):
- Это ПОЛЕ — инструкция "возьми позицию и добавь смещение"
- Вычисляется в момент применения
Преимущества полей:
- Очень гибкие — можно использовать в разных контекстах
- Эффективные — вычисляются только при необходимости
- Зависят от контекста — один результат может быть разным в разных местах
Официальная документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/fields.html
Когда использовать Capture Attribute vs Store Named Attribute
| Операция | Capture Attribute | Store Named Attribute |
|---|---|---|
| Тип данных | Анонимный (временный) | С названием (постоянный) |
| Использование | Передача между нодами | Сохранение для повторного использования |
| Область видимости | Только для этого узла | Доступен везде в дереве |
| Автоудаление | Да (если не используется) | Нет (хранится в геометрии) |
| Рекомендация | Для кратких операций | Для сложных логик |
Официальная документация:
Лучшие туториалы по основам (УРОВЕНЬ 0)
Официальные источники (ОБЯЗАТЕЛЬНО)
-
Simon Thommes - Geometry Nodes from Scratch - Blender Studio
- Сводка: Официальный курс Blender, снят разработчиком Geometry Nodes. Объясняет базовые концепции с профессиональным подходом. Идеален как стартовая точка.
- Версия: Актуально для 3.0+
- Длительность: ~4 часа
- Уровень: Новичок
- Официальная документация к курсу: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/index.html
-
Bradley Animation - Geometry Nodes Level 1 Full Course - YouTube
- Сводка: Полный структурированный курс на YouTube. Отличные основы, понятное объяснение для новичков. Проходит все базовые операции пошагово.
- Версия: 3.2+
- Длительность: ~3 часа
- Уровень: Новичок-Начинающий
- Проекты в курсе: Простое рассеивание, базовые трансформации
-
Blender Guru (Andrew Price) - Geometry Nodes for Beginners - YouTube
- Сводка: Качественные основы от известного 3D художника. Проект "сахарные конфеты" — отличный первый проект для понимания workflow. Часть 1 из 3-х.
- Версия: 2.92+
- Длительность: ~15 минут (часть 1)
- Уровень: Новичок
- Проекты: Распределение точек, инстансирование, рандомизация
- Часть 2: https://www.youtube.com/watch?v=V10GBrmYIDM
- Часть 3: https://www.youtube.com/watch?v=4WAxMI1QJMQ
Письменные руководства
-
Artistic Render - Blender Geometry Nodes Fundamentals Guide - Blog
- Сводка: Детальное письменное руководство с скриншотами. Объясняет UI, workflow и базовые концепции. Хорошо для тех, кто предпочитает читать.
- Формат: Статья с иллюстрациями
- Уровень: Новичок
-
Artistic Render - How to scatter objects with geometry nodes - Blog
- Сводка: Пошаговое руководство по созданию системы рассеивания объектов. Практический проект с подробными объяснениями.
- Проект: Рассеивание Suzanne на поверхности
- Уровень: Новичок
Дополнительные источники
-
Default Cube / CG Matter - Основы для начинающих
- Сводка: Качественные основы, доступное изложение. Фокус на понимании, а не на фишечках.
- Уровень: Новичок
-
Johnny Matthews (Bradley Animation) - YouTube Channel
- Сводка: Канал с регулярными туториалами. Множество примеров и проектов для практики.
- Контент: От базовых до продвинутых техник
- Рекомендация: Подпишитесь и смотрите периодически
-
Entagma - Geometry Nodes Series
- Сводка: Курс от Manuel Frigerio (разработчик процедурной графики). Высокий уровень контента с фокусом на математику.
- Уровень: Начинающий-Средний
- Формат: Видео-курс
- Цена: Платный
-
CG Geek - Geometry Nodes Basics - YouTube
- Сводка: Качественный контент с фокусом на практических приложениях.
- Уровень: Новичок-Начинающий
-
Richard Yot - Geometry Nodes Fundamentals Part 1
- Сводка: Глубокие основы с техническим подходом. Отлично для понимания логики.
- Уровень: Начинающий
-
Blender Guru - Procedural Thinking
- Сводка: Andrew Price объясняет как ДУМАТЬ процедурально. Фундаментальный mindset для GN.
- Важность: ВЫСОКАЯ — меняет способ мышления
- Рекомендация: Смотрите несколько видео
Форумные обсуждения: Советы от профессионалов
-
BlenderArtists: Suggestion for a Beginner learning Geometry nodes
- Опытные пользователи дают советы новичкам. Реальные рекомендации по порядку обучения.
-
Reddit: What is the BEST way to learn Geometry Nodes from scratch?
- Обсуждение стратегии обучения. Множество подходов и мнений.
-
BlenderArtists: Help/Advices to get better into Geometry Nodes
- Советы для профессионального роста. От новичка к специалисту.
-
BlenderArtists: Geometry Nodes Development Discussion
- Обсуждение развития фичей. Узнайте что грядёт.
-
DevTalk Blender: Geometry Nodes
- Обсуждение разработчиков. Техническая информация о том как это работает.
-
DevTalk: Geometry Nodes Workshop Notes (июль 2025)
- Официальные встречи разработчиков. Узнайте о планах развития.
-
BlenderArtists: Best way to learn Geometry Nodes fundamentals?
- Специально о фундаментальных основах. Что учить в первую очередь.
Распространённые ошибки новичков И ИХ РЕШЕНИЯ
1. Неправильное подключение типов данных (Vector к Float)
Проблема:
Ноды имеют типизированные входы. Несоответствие типов вызывает ошибку или автоматическое преобразование, которое может быть не тем, что вы хотите.
Почему это происходит:
Geometry Nodes — типизированная система. Каждый сокет ожидает определённый тип данных.
Решение:
-
Всегда проверяйте цвет сокета:
- Жёлтый = Float (одно число: 0.5, 3.14, -10)
- Красный = Vector (три числа: X, Y, Z)
- Белый = Geometry (геометрия)
- Зелёный = Boolean (true/false)
- Голубой = String (текст)
-
Если типы не совпадают, используйте переходные ноды:
- Float → Vector: используйте Combine XYZ ноду
- Vector → Float: используйте Separate XYZ ноду
- Для специальных преобразований: Vector Math, Math ноды
Пример:
Хотите использовать один Float в качестве всех трёх компонентов вектора?
Math node (операция) → Combine XYZ → Connect XYZ value to X, Y, Z inputs
Официальная документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/read/position.html
2. Забывают про Realize Instances перед Apply
Проблема:
После применения модификатора объекты либо исчезают, либо остаются как невидимые инстансы.
Почему это происходит:
Geometry Nodes часто используют инстансы для оптимизации. Инстансы — это ссылки на объекты, а не реальная геометрия. При применении модификатора инстансы остаются нереализованными.
Решение:
Добавьте ноду Realize Instances перед Group Output:
- Shift+A → Instances → Realize Instances
- Подключите вашу геометрию к Realize Instances
- Выход Realize Instances → Group Output
Это конвертирует все инстансы в реальную геометрию.
Когда НЕ нужен Realize Instances:
- Если вы хотите оставить инстансы (для оптимизации рендера)
- Если вы работаете с материалами инстансов
Официальная документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/instances/realize_instances.html
3. Не понимают разницу между Fields и Values
Проблема:
Fields оцениваются в момент использования, а не в момент создания. Это вызывает путаницу при работе с рандомизацией и динамическими значениями.
Пример путаницы:
Если вы используете Random Value node напрямую в Set Position:
- Каждый раз когда Set Position "читает" это поле,
он получает НОВОЕ случайное значение для каждой вершины
Если вы хотите одно случайное значение для всего объекта:
- Используйте Capture Attribute ДО Set Position
Решение:
Используйте Capture Attribute для "заморозки" значения в конкретный момент:
Random Value → Capture Attribute (сохранить как атрибут)
→ Named Attribute (прочитать сохранённое значение)
→ Set Position
Теперь значение не будет пересчитываться.
Официальная документация:
4. Путают Geometry domain с Mesh domain
Проблема:
Атрибуты существуют в разных доменах (point, edge, face, corner). Попытка использовать атрибут неправильного домена вызывает ошибки.
Почему это происходит:
Геометрия имеет разные типы элементов:
- Points = Vertices
- Edges = Рёбра между вершинами
- Faces = Полигоны
- Corners = Углы лиц
Каждый домен имеет свои атрибуты!
Решение:
-
Изучите Domain Reference в документации: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/attributes_reference.html
-
Используйте правильные ноды для преобразования:
- Distribute Points on Faces → создаёт Point domain
- Mesh to Curve → создаёт спайны (Spline domain)
- Sample Nearest → может читать разные домены
-
Когда нужно изменить домен, используйте специализированные ноды:
- Interpolate Domain - интерполировать значения между доменами
- Указать правильный домен в самой ноде
Пример:
Хотите использовать позицию вершины на лице?
Position node (на Point domain)
→ Interpolate Domain (преобразовать на Face domain)
→ Использовать на лице
Официальная документация атрибутов: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/attributes_reference.html
Лайфхаки от профессионалов для оптимизации
Организация и читаемость
-
Используйте Frames (Ctrl+J) для группировки связанных нод
- Нарисуйте рамку вокруг нод → они сгруппируются в Frame
- Названия frames помогают ориентироваться в сложных графах
- Можно сворачивать frames для компактности
-
Viewer Node shortcuts (Ctrl+1-9) для быстрого переключения
- Ctrl+1 → Viewer Node 1
- Это ускоряет дебаг
- Полезно при работе с несколькими параллельными процессами
-
Используйте Node Search (Shift+A или X) эффективно
- Начинайте печатать название ноды
- Результаты фильтруются в реальном времени
- Быстрее чем искать в меню
Работа с данными
-
Создавайте Named Attributes для передачи данных
- Store Named Attribute → сохранить нужное значение
- Named Attribute → прочитать где угодно
- Более надёжно чем длинные цепочки нод
-
Регулярно используйте Spreadsheet Editor для визуализации данных
- Window → Toggle Sidebar → выберите нужный домен
- Видите все атрибуты каждого элемента
- Помогает найти ошибки в логике
-
Используйте Bake Node (Blender 4.0+) для фиксации сложных операций
- Замораживает результат процедурной геометрии
- Ускоряет предпросмотр для сложных node trees
- https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/modify/bake.html
Оптимизация производительности
-
Включайте Preview вместо Render для быстрой работы
- Модификаторы → Значок глаза (Preview)
- Отключайте на время сложные ноды
- Используйте Viewport Display для быстрого просмотра
-
Комбинируйте Geometry Nodes с Python для автоматизации
- Python доступен через Scripting workspace
- Можно генерировать node trees автоматически
- Экономит время на повторяющихся операциях
- https://github.com/al1brn/geonodes - готовая Python библиотека
-
Структурируйте node trees в Node Groups (Ctrl+G)
- Сложные операции → отдельная группа
- Переиспользуйте между проектами
- Легче в понимании и поддержке
-
Размещайте трансформации РАНО в цепи
- Set Position/Scale/Rotate ближе к началу
- Остальные операции работают на уже трансформированной геометрии
- Часто даёт лучшие результаты и работает быстрее
МОДУЛЬ 0.2: МАТЕМАТИЧЕСКИЙ ФУНДАМЕНТ
Векторы: Основы
Что такое вектор?
Вектор — это стрелка в 3D пространстве с тремя числами (X, Y, Z):
Вектор = (X, Y, Z)
Примеры:
- Position = (1, 2, 3) — позиция в пространстве
- Normal = (0, 0, 1) — направление поверхности вверх
- Offset = (0.5, 0, 0) — смещение вправо на 0.5
Ключевые операции с векторами
| Операция | Описание | Формула | Use Case |
|---|---|---|---|
| Add | Сумма двух векторов | (a.x+b.x, a.y+b.y, a.z+b.z) | Set Position с Offset |
| Subtract | Разница между двумя векторами | (a.x-b.x, a.y-b.y, a.z-b.z) | Найти направление между точками |
| Multiply | Масштабирование вектора | (a.xscale, a.yscale, a.z*scale) | Уменьшить/увеличить смещение |
| Dot Product | Скалярное произведение | a.xb.x + a.yb.y + a.z*b.z | Найти угол между векторами |
| Cross Product | Векторное произведение | Вектор перпендикулярный обоим | Найти нормаль к плоскости |
| Length | Длина вектора | √(x² + y² + z²) | Расстояние между точками |
| Normalize | Вектор длины 1 в том же направлении | v / length(v) | Направление без масштаба |
Официальная документация Vector Math: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/attribute/attribute_vector_math.html
Практический пример в Geometry Nodes
Задача: Переместить каждую точку на 5 единиц в направлении нормали
Решение:
1. Position node → получить текущие координаты
2. Normal node → получить направление поверхности
3. Vector Math (Multiply) → Normal * 5 → масштабировать на 5
4. Vector Math (Add) → Position + (Normal * 5) → новые координаты
5. Set Position → установить новые координаты
Скалярные поля (Noise, Textures)
Что такое скалярное поле?
Скалярное поле — это число для каждой точки в пространстве:
Для позиции (X, Y, Z) → одно число от 0 до 1
Примеры:
- Perlin Noise: плавные случайные значения
- White Noise: полностью случайные значения
- Gradient: значения постепенно меняются
Noise Texture Node
Используется для создания органических, природных паттернов.
Входы:
- Vector — позиция в пространстве где вычислять noise
- Scale — размер паттерна (больше = крупнее)
- Detail — количество деталей (больше = сложнее)
- Offset — смещение паттерна
Выходы:
- Factor — одно число от 0 до 1
- Color — цвет с разным noise в каждом канале
ВАЖНОЕ ЗАМЕЧАНИЕ о целочисленных позициях:
Noise часто вычисляется на целых числах и может дать неожиданные результаты!
Если ваши точки находятся на целых координатах (0,0,0), (1,0,0), (2,0,0)
И Scale = 1, то Noise может быть везде 0.5!
Решение: Добавьте случайное смещение или измените Scale
Официальная документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/texture/noise.html
White Noise Texture Node
Полностью случайное значение для каждой позиции. Отличается от Noise своей полной неупорядоченностью.
Входы:
- Vector — позиция
- W (4D noise) — может использоваться как SEED
Выход: Случайное число от 0 до 1
Использование:
- Генерация уникальных семян для каждого объекта
- Полностью случайные паттерны
МОДУЛЬ 0.3: ПРИНЦИПЫ ДИЗАЙНА GEOMETRY NODES
Принцип 1: Неразрушающее редактирование
Geometry Nodes работают как обычный модификатор:
- Оригинальная сетка никогда не изменяется
- Все изменения применяются в реальном времени
- Можно быстро экспериментировать без переживаний
Принцип 2: Параметризация
Выставляйте важные параметры как inputs группы:
- Density (плотность точек)
- Scale (масштаб объектов)
- Rotation (угол поворота)
- Color (цвет)
Как сделать параметр видимым:
- Shift+L или перетащите из ноды в Group Input
- Теперь параметр видим в модификаторе
- Название параметра появится в Properties Panel
Принцип 3: Отладка с Viewer
Используйте Viewer Node для понимания:
- На каком этапе появляется проблема
- Какие значения выходят из каждой ноды
- Как правильно ориентирована геометрия
УРОВЕНЬ 1: BORING BASICS — ФУНДАМЕНТ ВСЕГО
Цель уровня: Понять как работает основная логика, научиться думать потоком данных, создать свои первые процедурные модели.
Время обучения: 2-3 недели при регулярной практике
Требования: Уровень 0 пройден
МОДУЛЬ 1.1: РАСПРЕДЕЛЕНИЕ ТОЧЕК И ИНСТАНСЫ
Концепция: Distribute Points on Faces + Instance on Points
Это основная техника рассеивания в Geometry Nodes:
Шаг 1: Distribute Points on Faces
↓ Создаёт облако точек на поверхности
Шаг 2: Instance on Points
↓ Помещает копию объекта на каждую точку
Шаг 3: Join Geometry (опционально)
↓ Объединяет оригинальную геометрию с инстансами
Туториалы (УРОВЕНЬ 1)
Базовые техники
-
Blender Guru - Geometry Nodes for Beginners Part 1-3
- Проект: Сахарные конфеты с рассеиванием
- Длительность: 45 минут (все 3 части)
- Изучите: Distribute Points, Instance on Points, Join Geometry
- Часть 1: https://www.youtube.com/watch?v=aO0eUnu0hO0 - базовая сетка
- Часть 2: https://www.youtube.com/watch?v=V10GBrmYIDM - рандомизация
- Часть 3: https://www.youtube.com/watch?v=4WAxMI1QJMQ - финальные штрихи
-
BlenderMania - Daily Dose #56: Distribute Objects with Geometry Nodes
- Сводка: Быстрый пример (1.5 минуты) показывающий full pipeline
- Уровень: Новичок
- Идеально для: Первичного понимания workflow
-
Blender Geometry Nodes Made Easy 2024
- Сводка: Современный подход к базовым техникам
- Длительность: ~25 минут
- Версия: Актуально для 4.0+
Специальные техники распределения
-
Distribute Points on Faces Node - Официальная документация
- Сводка: Полное описание ноды с примерами
- Режимы: Random, Poisson Disk, Fixed
- Когда использовать каждый режим:
- Random = быстро, но может быть пересечение
- Poisson Disk = точки не пересекаются, красивое распределение
- Fixed = точное количество/сетка точек
-
Blender Tutorial: Distributing Exact Numbers of Points on Faces
- Проект: Создание Node Group для точного контроля количества точек
- Длительность: ~10 минут
- Уровень: Начинающий
- Изучите: Как комбинировать ноды для нужного результата
Практический проект 1: "Цветочное поле"
Цель: Создать процедурное цветочное поле с рандомными ориентациями.
Что вы изучите:
- Distribute Points on Faces с Poisson Disk
- Instance on Points с рандомизацией
- Random Value для rotation и scale
- Join Geometry
Шаги:
- Создайте большую плоскость (будет землей)
- Создайте простой цветок (одна стебель + цветок)
- В Geometry Nodes:
- Distribute Points with Poisson Disk (density ~0.5)
- Instance on Points (ваш цветок)
- Random Value для rotation (0-360°)
- Random Value для scale (0.8-1.2)
- Join Geometry с основной геометрией
Результат: Красивое процедурное поле
СПРАВОЧНАЯ ИНФОРМАЦИЯ
Быстрые ссылки на официальную документацию Blender
Основные ноды:
Атрибуты и Fields:
Математика:
Кривые:
Текстуры и Random:
GitHub ресурсы
-
Geometry Nodes Overview - quellenform
- Полный список всех нод с версиями Blender
- Очень полезно для поиска когда нода добавлена
-
- Библиотека для создания Geometry Nodes через Python
- Для автоматизации сложных структур
Сообщества и форумы
- BlenderArtists.org - официальное сообщество Blender
- Reddit r/blender - быстрые ответы, много примеров
- Blender DevTalk - обсуждение разработки
- Blender Discord - реальное время общение
Навигация
Авторы
- Volumorph - @volumorph
- David "Dr. Strange" Ayrapetian - @david_ayrapetiann
- Maxim "Dr. Artist" Zhuravlev - @WhiteCatWeb
- Manachrome Factory - @Manachrome_Factory
- Artyom "Биполярыч" Sidorov - @artyomsidorov25
- Pepsied "Cola" - @pepsiedina